Hauptsache ihr hört mich, das ist schon mal ein guter Anfang.
Es freut mich, dass ich mal wieder hier bin. Die, die schon ein bisschen länger dabei sind, wissen, ich war mal dabei, wo der Workshop gegründet wurde.
Und es freut mich natürlich super, dass es den immer noch gibt. Ich benutze Pearl schon sehr sehr lange und ja, mir hat da etwas gefehlt und darüber möchte ich heute erzählen, weil ich dann irgendwann dazu gekommen bin, das selber zu machen.
Vielleicht ganz kurz zu meiner Person. Ich habe irgendwann mal den Fehler gemacht eine Firma zu gründen, die heißt Echoes Technology GmbH, die habe ich jetzt am Bein, da muss ich mich mit drum kümmern. Wir machen IT Security, Secure Remote Access und wir haben das ganze Backend, die ganze Verwaltung eben in Pearl geschrieben.
Das sind in der Zwischenzeit ein paar Hunderttausend Zeilen Pearl Code, die da so zusammengekommen sind im Laufe der Jahre. Und irgendwie muss man damit halt umgehen, man muss die debacken, man muss die entwickeln und so weiter.
Dafür haben wir im Laufe der Jahre immer wieder nach einer gescheiten Entwicklungsumgebung für Pearl gesucht.
Hier steht 20 Jahre, ich habe vorhin festgestellt es sind eigentlich schon 25 Jahre, habe ich immer wieder im Rahmen meiner Tätigkeit gesucht, was gibt es für eine IDE mit der man gescheit Pearl entwickeln kann.
Die gibt es immer für alle Sprachen, alle möglichen Sprachen, aber Pearl war da aus meiner Sicht immer so ein bisschen, ich nenne es mal, minder bemittelt, weil so klar kann man auf der Kommandozeile mit dem Pearl-Debugger debacken.
Wenn man damit ein paar Hunderttausend Zeilen Code irgendwie debacken möchte, dann macht das einfach keinen Spaß mehr.
Außer wenn man so ganz Core-Nerd, bin ich einfach nicht, sage ich ganz ehrlich.
Es gibt verschiedene Ansätze in Pearl, es gab mal was, ein Plug-In für Eclipse, es gab mal von ActiveState, die haben mal Kommodo gemacht, das war das was aus meiner Sicht am besten funktioniert,
was wir auch eine ganze Zeit lang benutzt haben, die haben das leider irgendwann nicht mehr weiterentwickelt, weil so wie wir alle wissen, es gibt Sprachen die sind einfach mehr angesagt.
Man macht zurzeit Go oder JavaScript, aber nicht mehr Pearl wenn man angesagt sein möchte.
Aber ich bin eben der Meinung, Pearl ist nach wie vor eine gute Sprache, wir sind deswegen dabei geblieben.
Irgendwann hat Microsoft im Zusammenhang mit dem Visual Studio Code das Language Server Protokoll und das Debug Adapter Protokoll, schwieriges Wort, veröffentlicht oder initiiert.
Das gibt einfach die Möglichkeit, dass man Dinge, die sprachspezifisch sind, nicht mehr in einer bestimmten IDE hat,
das heißt ich muss sie nicht einmal in der IDE A, B, C, D implementieren, sondern ich kann sie einmal generell implementieren und sie funktionieren dann überall.
Dann haben wir uns das Visual Studio Code angeguckt, haben gesagt super Sache, weil zumindest meine persönliche Meinung ist,
seitdem ich vor 25, 30 Jahren zum ersten Mal Visual Studio damals noch von 20 Disketten installiert habe, dass Microsoft einfach gute Entwicklertools macht.
Man kann über Microsoft denken was man will ansonsten, aber das können sie meiner Meinung nach.
Aber da will ich jetzt auch gar keinen Religionskrieg hier vom Zaun brechen, weil da können wir uns sicherlich länger als 40 Minuten drüber unterhalten.
Der Punkt war aber leider hat niemand sich die Mühe gemacht für das Visual Studio Code ein Plugin zu schreiben oder einen Language Server,
damit man das richtig schön mit Perl nutzen kann. Es gibt da so ein paar Plugins, die können alle ein bisschen was,
die einen benutzen das C-Tags um Symbole rauszusuchen. Es gab auch einen Debugger für Perl, der auf den Kommandozeilen Debugger aufsetzt,
den habe ich mir auch mal angeguckt und geforkt und ein bisschen weiterentwickelt, kann man sich auf GitHub noch angucken.
Das war aber aus meiner Sicht so mühsam und das war einfach vom Konzept her, hat das so viele Nachteile aus meiner persönlichen Sicht gehabt.
Ich habe mir auch schon länger nicht mehr angeguckt, vielleicht hat sich das auch geändert, dass ich mich irgendwann entschlossen habe zu sagen,
okay damit wir vernünftig mit unserem Code weiterarbeiten können, brauchen wir einfach eine vernünftige Idee.
Und ich entschlossen in meinen Urlauben meistens, wenn ich gerade mal keine Lust mehr hatte am Strand zu liegen und ich habe eigentlich nie Lust am Strand zu liegen,
dann hier einen Language Server und im zweiten Schritt auch einen Debugger zu schreiben und habe das veröffentlicht in der Hoffnung, dass es für andere eben auch hilfreich ist.
Im Moment geht das für Visual Studio Code, weil damit benutzen wir es einfach, damit ist es gut getestet,
es geht aber auch für andere Editoren, die eben diese Protokolle unterstützen, dazu vielleicht nachher noch ein klein bisschen mehr.
Hier ist so die kurze Feature Auflistung, die ist auch relativ klein, die gucken wir uns gleich mal im Detail an.
Also der ganze Vortrag gliedert sich im Prinzip in zwei große Teile.
Der erste Teil möchte ich zeigen, was kann das Ganze, was kann man damit anstellen, wozu ist es gut.
Im zweiten Teil ein bisschen auf die Internas eingehen, was ist das Language Server Protokoll.
Und den ersten Teil habe ich unterteilt in den Language Server und in den Debugger.
Dazu vielleicht mal ganz allgemein, was soll das Ganze überhaupt, Language Server soll dazu da sein,
um spezifische Funktionen für eine Sprache, einem Editor, einer IDE zur Verfügung zu stellen.
Das sind eben so Sachen, wie hier aufgelistet sind, Syntax, Checking, wie finde ich ein Symbol in dem File,
wie kann ich Go-to-Definition solche Sachen machen, wie kann ich so etwas machen, dass ich eine Autovervollständigung habe von Funktionsnamen,
von Symbolen und diverse andere Sachen.
So, was können wir hier tun?
Ich habe da so ein paar schöne Screenshots gemacht, wir können uns das aber auch mal live angucken.
Ich weiß noch nicht, ob die Auflösung reicht, dass das hinten jemand sieht.
Ich schalte mal hier rüber. Ist das groß genug? Wahrscheinlich nicht.
Wir machen das, da müssen wir ein bisschen mehr scrollen.
Ich mache mal ein bisschen kleiner. Geht das hinten noch?
So, ok. Wir haben hier, da gab es auch vorhin so einen schönen Pointer.
Ich mache das so, ich bin ja groß genug.
Presenters
Gerald Richter
Zugänglich über
Offener Zugang
Dauer
00:55:23 Min
Aufnahmedatum
2020-03-05
Hochgeladen am
2020-03-05 21:50:57
Sprache
de-DE
Es hat in den letzten 20 Jahren immer wieder Versuche gegeben eine vollständige IDE für Perl zur Verfügung zustellen. Diese haben aber entweder nie funktioniert oder werden nicht mehr gepflegt.
Perl::LanguageServer unterstützt das Language Server Protocol sowie das Debug Adapter Protocol und erlaubt es damit in Editoren und IDEs, die diese Protokolle unterstützen, Perl spezifischen Funktionen wie Symbolsuche und Debuggen zu nutzen.
Der Vortrag zeigt wie man Visual Studio Code damit um einen Perl Debugger und weitere Perl spezifische Funktionen so erweitert das man eine leistungsfähige und vollständige (nicht nur) Perl IDE erhält.
Perl::LanguageServer unterstützt dabei nicht nur standard Perl, sondern kann auch mit Moose und Coro umgehen. Das Modul hat den Anspruch nicht nur in kleinen Scripten, sondern auch im Umgang mit großen professionellen Perl Projekten zuverlässig zu funktionieren.
Im zweiten Teil geht der Vortrag darauf ein wie das Modul um zusätzliche Funktionen erweitert werden und wie es für andere Editoren/IDEs nutzbar gemacht werden kann.
Further information: https://metacpan.org/pod/release/GRICHTER/Perl-LanguageServer-2.0.1/lib/Perl/LanguageServer.pm